#pragma once

#include "imgui/imgui.h"
#include "ogl/math/types.h"

namespace ImGui
{
    namespace Math
    {
        struct Editor
        {
            bool Edit(Ogl::Math::Transform &inst);

            bool Edit(Ogl::Math::Frustum &inst);

			struct MoveDesc
			{
				float mWheelSpeed = 2.0f;
				float middleMoveAxis = 0.001f;
				float rotXspeed = 0.5f;
				float rotYspeed = 0.2f;
				MoveDesc(){}
			};
			struct WorkDesc
			{
				float walkSpeed = 30.0f;
				float trunSpeed = 15.0f;
				float rotSpeedX = 6.0f;
				float rotSpeedY = 6.0f;
				WorkDesc()
				{

				}
			};
			bool FreeMove(Ogl::Math::Transform& transform, const WorkDesc& desc = {});
			
			bool DragMove(Ogl::Math::Transform& transform,
				const MoveDesc& desc = {});
        };
    };
};